Computers and other like devices are invaluable tools in nearly every industry and setting. These devices and appliances come in a variety of different forms and may be designed as general purpose or special purpose tools. Common to most of these devices is the need to interface the user(s). A typical general purpose computer may include, for example, a display mechanism and at least one input mechanism. The display mechanism, e.g., a CRT-based monitor, flat-panel display, etc., is used to communicate information to the user visually. This communication is often accomplished, for example, using a graphical user interface (GUI) software program or the like. Typically, a user interfaces with the one or more computer program(s) associated with the GUI by providing user input to the computer that in some manner is recognized by the program(s) and/or GUI and causes certain changes in the computer operation/data. For example, a user may physically move a pointing device, such as a mouse, that is configured to send a signal to the computer logic such that within the GUI a graphical pointer is moved accordingly. With such a user input device, the user may then select certain program/GUI features by moving the graphical pointer to a specific region within the GUI as displayed and inputting a selection signal to the computer hardware, for example, by activating a button or the like provided on mouse. Such operations are common and well understood.
With the continued increase in computing power, many operating systems, programs, GUIs, etc. are able to support/perform multiple tasks. This is particularly useful for computers that have sufficiently large enough display devices to present multiple different program GUIs. For example, a user may configure the computer to simultaneously display the GUI for a word-processing application and a spreadsheet application within one or more display devices. When there are multiple tasks displayed, there is also a need to identify to the computer logic which of the GUIs and hence programs/applications that the user is currently interacting with. Thus, in the above example, to switch the focus of the computer logic to one of the applications, the user will typically “click-on” or otherwise select one of the GUI regions. This will cause the computer logic (e.g., operating system) to recognize that subsequent user inputs will be associated with the selected program. Hence, when the user in the example above wants to switch from the word-processing application to the spreadsheet application the user may point the graphical pointer to a portion of the GUI associated with the spreadsheet application and hit a mouse button.
In other exemplary arrangements, the user may switch the focus between different potential selectable regions within the GUI by entering one or more keyboard strokes. Such keyboard techniques may become less efficient when there are a greater number of selectable regions within the GUI and the user is required to repeat the input sequence several times until the desired selectable region is actively in focus.
While techniques that use a mouse or other like user pointing device may prove easier for users selecting between several selectable regions, they can become burdensome when the display device(s) present a large GUI interface. In such arrangements the user may be required to move the mouse over a great distance and may be required to pick up the mouse and place it back down again at a different position on the desktop/surface that it has moved across to complete a desired graphical pointer movement within the GUI. A similar action may be required by a touchpad pointing device. By way of further example, the user may be required to spin a trackball or other like pointing device for an extended period of time to move an on-screen cursor to the desired selectable region.
These various techniques and others like them, therefore, in certain circumstances tend to hinder or otherwise reduce the effectiveness of a multi-tasking user interface environment. Consequently, there is a need for new and/or improved methods, apparatuses and systems for providing user input to a computer or other like device.